const express=require("express");
const router=express.Router();
const multer = require("multer");
const path=require("path");

function r(min,max){
    const dec=max-min;
    return parseInt(Math.random()*dec+min);
}

//创建存储对象
const storage=multer.diskStorage({
    //配置文件要存储的路径
    destination:path.join(__dirname,"../public/upload/"),
    //配置文件要保存的名字
    filename:function(req,file,cb){
        const name=Date.now()+""+r(1000000,10000000)+path.extname(file.originalname);
        cb(null,name);
    }
})

//配置文件上传处理
const upload = multer({
    storage,
    //配置文件上传的类型或格式
    fileFilter:function(req,file,cb){
        //得到文件后缀名
        const ext = path.extname(file.originalname).toLowerCase();
        //服务器允许的后缀名
        const expects=[".jpg",".png",".bmp",".gif",".tiff"];
        //判断后缀名是否相同
        if(expects.includes(ext)){
            cb(null,true); //相同
        }else{
            cb(new Error("文件类型不正确"));
        }
    },
    //限制文件大小在500KB以内
    limits:{
        fileSize:500*1024
    }
}).array("imgfile"); //这个文件是个数组

router.post("/",(req,res)=>{
    //判断文件上传是否有没有错误
    upload(req,res,function(err){
        if(err){
            //有错误
            res.send({
                code:1,
                message:err.message
            })
        }else{
            //没有错误
            res.send({
                code:0,
                message:"",
                data:req.files.map(item=>"/upload/"+item.filename)
            });
        }
    })
})
module.exports=router;

